<?php

class CategoriesController extends AppController {

    var $name = 'Categories';

        function index($path = null) {

        $this->Category->recursive = 0;
        $this->set('categories', $this->paginate());
    }

    function view($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Invalid category', true));
            $this->redirect(array('action' => 'index'));
        }

//        $this->set('category', $this->Category->read(null, $id));
        $this->redirect(array('controller' => 'images', 'action' => 'indexc',$id));

    }

    function admin_index($path = null) {

        $this->Category->recursive = 0;
        $this->set('categories', $this->paginate());
    }

    function admin_view($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Invalid category', true));
            $this->redirect(array('action' => 'index'));
        }

//        $this->set('category', $this->Category->read(null, $id));
        $this->redirect(array('controller' => 'images', 'action' => 'indexc',$id));

    }

    function admin_add() {
        if (!empty($this->data)) {
            $this->Category->create();
            if ($this->Category->save($this->data)) {
                echo WWW_ROOT;
                $folderPath = WWW_ROOT . "img".DIRECTORY_SEPARATOR."album".DIRECTORY_SEPARATOR."album_" . $this->Category->id;
                mkdir($folderPath, 0777);
                mkdir($folderPath.DIRECTORY_SEPARATOR."original", 0777);
                mkdir($folderPath.DIRECTORY_SEPARATOR."large", 0777);
                mkdir($folderPath.DIRECTORY_SEPARATOR."medium", 0777);
                mkdir($folderPath.DIRECTORY_SEPARATOR."thumbnails", 0777);
                $this->Session->setFlash(__('¡Álbum creado con éxito!', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('El álbum no pudo ser salvado. Por favor, intente de nuevo.', true));
            }
        }
    }

    function admin_edit($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Invalid category', true));
            $this->redirect(array('action' => 'index'));
        }
        if (!empty($this->data)) {
            if ($this->Category->save($this->data)) {
                $this->Session->setFlash(__('¡Álbum modificado con éxito!', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('El álbum no pudo ser salvado. Por favor, intente de nuevo.', true));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->Category->read(null, $id);
        }
    }


    // funcion auxiliar
    // AUX
    function recursive_remove_directory($directory, $empty=FALSE)
 {
     // if the path has a slash at the end we remove it here
     if(substr($directory,-1) == '/')
     {
         $directory = substr($directory,0,-1);
     }

     // if the path is not valid or is not a directory ...
     if(!file_exists($directory) || !is_dir($directory))
     {
         // ... we return false and exit the function
         return FALSE;

     // ... if the path is not readable
     }elseif(!is_readable($directory))
     {
         // ... we return false and exit the function
         return FALSE;

     // ... else if the path is readable
     }else{

         // we open the directory
         $handle = opendir($directory);

         // and scan through the items inside
         while (FALSE !== ($item = readdir($handle)))
         {
             // if the filepointer is not the current directory
             // or the parent directory
             if($item != '.' && $item != '..')
             {
                 // we build the new path to delete
                 $path = $directory.'/'.$item;

                 // if the new path is a directory
                 if(is_dir($path))
                 {
                     // we call this function with the new path
                     $this->recursive_remove_directory($path);

                 // if the new path is a file
                 }else{
                     // we remove the file
                     unlink($path);
                 }
             }
         }
         // close the directory
         closedir($handle);

         // if the option to empty is not set to true
         if($empty == FALSE)
         {
             // try to delete the now empty directory
             if(!rmdir($directory))
             {
                 // return false if not possible
                 return FALSE;
             }
         }
         // return success
         return TRUE;
     }

 }
    //30000
 

    function admin_delete($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Número de id inválido para un álbum', true));
            $this->redirect(array('action' => 'index'));
        }
        if ($this->Category->delete($id, $cascade = true)) {
            $folderPath = WWW_ROOT . "img".DIRECTORY_SEPARATOR."album".DIRECTORY_SEPARATOR."album_" . $id;
          //  $this->delete2($id); //para borrarlo de la BD
            $this->recursive_remove_directory($folderPath);
            $this->Session->setFlash(__('Category deleted', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->Session->setFlash(__('El álbum no fue borrado', true));
        $this->redirect(array('action' => 'index'));
    }

}

?>